#include<bits/stdc++.h>
#define For(i,j,k) for(int i=(j);i<=(k);i++)
#define ForD(i,j,k) for(int i=(j);i>=(k);i--)
#define int long long
using namespace std;
bool Mbe;
inline int read(){
    int x=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9'){
        if(c=='-') f=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        x=(x<<3)+(x<<1)+c-48;
        c=getchar();
    }
    return x*f;
}
inline void write(int x){
    if(x>=10) write(x/10);
    putchar(x%10+'0');
}

const int N=4e5+5;
int lsh[N],qry[N];

int sum[N<<2],cnt[N<<2],Spre[N<<2],Ssuf[N<<2];
inline void upd(int u){
    sum[u]=sum[u<<1]+sum[u<<1|1];
    cnt[u]=cnt[u<<1]+cnt[u<<1|1];
    Spre[u]=Spre[u<<1]+Spre[u<<1|1]+sum[u<<1]*cnt[u<<1|1];
    Ssuf[u]=Ssuf[u<<1]+Ssuf[u<<1|1]+cnt[u<<1]*sum[u<<1|1];
}
inline void modify(int u,int l,int r,int p){
    if(l==r){
        sum[u]^=lsh[p],cnt[u]^=1;
        Spre[u]=Ssuf[u]=sum[u];
        return;
    }
    int mid=(l+r)>>1;
    if(p<=mid) modify(u<<1,l,mid,p);
    else modify(u<<1|1,mid+1,r,p);
    upd(u);
}
inline int queryPre(int u,int l,int r,int k){
    if(!k) return 0;
    if(l==r) return sum[u];
    int mid=(l+r)>>1;
    if(k>cnt[u<<1]){
        k-=cnt[u<<1];
        return sum[u<<1]+queryPre(u<<1|1,mid+1,r,k);
    }else return queryPre(u<<1,l,mid,k);
}
inline int querySuf(int u,int l,int r,int k){
    if(!k) return 0;
    if(l==r) return sum[u];
    int mid=(l+r)>>1;
    if(k>cnt[u<<1|1]){
        k-=cnt[u<<1|1];
        return sum[u<<1|1]+querySuf(u<<1,l,mid,k);
    }else return querySuf(u<<1|1,mid+1,r,k);
}
inline int SumPre(int u,int l,int r,int k){
    if(!k) return 0;
    if(l==r) return Spre[u];
    int mid=(l+r)>>1;
    if(k>cnt[u<<1]){
        k-=cnt[u<<1];
        return SumPre(u<<1|1,mid+1,r,k)+k*sum[u<<1]+Spre[u<<1];
    }else return SumPre(u<<1,l,mid,k);
}
inline int SumSuf(int u,int l,int r,int k){
    if(!k) return 0;
    if(l==r) return Ssuf[u];
    int mid=(l+r)>>1;
    if(k>cnt[u<<1|1]){
        k-=cnt[u<<1|1];
        return SumSuf(u<<1,l,mid,k)+k*sum[u<<1|1]+Ssuf[u<<1|1];
    }else return SumSuf(u<<1|1,mid+1,r,k);
}

inline void solve(){
    int n=read();
    For(i,1,n){
        int x=read();
        lsh[i]=x;
        qry[i]=x;
    }
    sort(lsh+1,lsh+n+1);
    int len=unique(lsh+1,lsh+n+1)-lsh-1;
    For(i,1,n) qry[i]=lower_bound(lsh+1,lsh+len+1,qry[i])-lsh;
    For(i,1,n){
        modify(1,1,len,qry[i]);
        int tot=cnt[1];
        int l,r,L,R;
        l=1,r=tot/2,L=r+1;
        while(l<=r){
            int mid=(l+r)>>1;
            if(queryPre(1,1,len,mid+1)<querySuf(1,1,len,mid)) L=mid,r=mid-1;
            else l=mid+1;
        }
        l=tot/2+1,r=tot-1,R=l-1;
        while(l<=r){
            int mid=(l+r)>>1;
            if(queryPre(1,1,len,mid+1)<querySuf(1,1,len,mid)) R=mid,l=mid+1;
            else r=mid-1;
        }
        int ans=0;
        ans+=SumSuf(1,1,len,L-1);
        ans-=SumPre(1,1,len,L-1);
        ans+=SumSuf(1,1,len,tot)-SumSuf(1,1,len,R);
        ans-=SumPre(1,1,len,tot)-SumPre(1,1,len,R);
        // For(k,1,L-1) ans+=querySuf(1,1,len,k)-queryPre(1,1,len,k);
        // For(k,R+1,tot) ans+=querySuf(1,1,len,k)-queryPre(1,1,len,k);
        ans+=queryPre(1,1,len,R+1)-queryPre(1,1,len,L);
        write(ans); putchar('\n');
    }
}
bool Med;
signed main(){
    fprintf(stderr,"%.3lf MB\n",(&Mbe-&Med)/1048576.0);
    freopen("kte.in","r",stdin), freopen("kte.out","w",stdout);
    // ios::sync_with_stdio(false); cin.tie(0),cout.tie(0);
    int _=1;
    // cin>>_;
    while(_--) solve();
    cerr<<1e3*clock()/CLOCKS_PER_SEC<<" ms\n";
    return 0;
}